The present invention relates to software signaling between program threads (which may run on the same processing unit or run on different processing units), and more particularly, to a computer system for notifying a signal change event through cache stashing.
In a parallel computing system having multiple processing units, multiple program threads often rely on signals to get attention from others to synchronize progress of works. Change of such a signal that is made by a first program thread running on a first processing unit to get attention from a second program thread running on a second processing unit may be associated with a polling operation initiated by the second processing unit or an interrupt operation initiated by the first processing unit. However, the additional latency introduced by the polling operation or the interrupt operation has become more significant when thread-level parallelism gets more fine-grained and more scaled-out.
Hence, there is a need for an innovative signaling design which can reduce the latency of delivering a signal change event from one program thread to another program thread.